<?php 
namespace HDPHP\Library;
class App{	
	public static function show(){
		//初始化框架
		self::_init();
		//自动载入， 给当前类的autoload增加一个自动载入的
		spl_autoload_register(array(__CLASS__,'_autoload'));
		//
		
		
		
		//实例化控制器
		self::_appRun();
	}
	//自动载入功能
	private static function _autoload($ClassName){
		$ClassName =str_replace('\\','/',$ClassName);
		//如果是工具类
		if(substr($ClassName,0 ,5)=='HDPHP'){
			//
			$path = $ClassName .'.class.php';			
		}else{
			//组合控制器路径
			$path ="Application/".$ClassName.".class.php";
		}
		//防止用户乱输入C控制器导致报错。。
		if(is_file($path)){
			require $path;	
		}else{
			halt("{$path}类找不到");
		}
		
		
			
	}
	
	//初始化方法
	private static function _init(){
		//模块
	 $m = isset($_GET['m'])?$_GET['m']:'Home';	
	 define('MODULE', $m);
	 //方法
	 $a =isset($_GET['a'])?$_GET['a']:'index';
	 define('ACTION', $a);
		//控制器
	$c=isset($_GET['c'])?ucfirst($_GET['c']):'Index';	
	 define('CONTROLLER', $c);	
	 
	 
	 
	 //如果有sessionid 证明已经开启过了
	 session_id()||session_start();
	 //如果用户模块乱输入
	 
	$modulePath ='Application/'.$m;
	if(!is_dir($modulePath)){
			halt("{$m}模块不存在");
		} 
	
	 
//	 载入配置项文件
	//框架配置项
		C(include 'HDPHP/Config.php');
		//公共配置项
		C(include 'Application/Common/Conf/Config.php');
		//用户配置项
		C(include 'Application/'.$m.'/Conf/Config.php');
		//echo $m;
	//设置时区
	 date_default_timezone_set(C('DAFAULT_ZONE'));


	}
	

	
	
	
	
	
//	自动载入方法
	private static function _appRun(){
		//把常量赋值给变量，防止下面不会出现语法错误
		$c ='\\'.MODULE.'\Controller\\'.CONTROLLER.'Controller';
		$a = ACTION;
		//实例化控制器
		$controller =new $c;
		$controller -> $a();
	}
	
	
}




